JS中数组和对象的区别和操作 您所在的位置:网站首页 js 判断对象和数组的区别和联系 JS中数组和对象的区别和操作

JS中数组和对象的区别和操作

2024-07-08 11:27| 来源: 网络整理| 查看: 265

数组和对象的区别

对象就是包含 属性/值 的集合,数组就是一组 值 的集合 数组具有一个最基本特征:索引,这是对象所没有的,通过 数组名[索引] 可以访问数组元素。数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。

数组和对象的另一个区别是,数组的数据没有”名称”(name),对象的数据有”名称”(name)。

var obj = {}; var arr = []; obj[2] = 'a'; arr[2] = 'a'; console.log(obj[2]); // 输出 a console.log(arr[2]); // 输出 a console.log(obj.length); // 输出 undefined console.log(arr.length); // 输出 3

obj[2]与arr[2]的区别

obj[2]输出’a’,是因为对象就是普通的键值对存取数据(此处对象存为键值对,即 { obj[2] : ‘a’ }) 而arr[2]输出’a’ 则不同,数组是通过索引来存取数据,arr[2]之所以输出’a’,是因为数组arr索引2的位置已经存储了数据

obj.length与arr.length的区别

obj.length并不具有数组的特性,并且obj没有保存属性length,故输出undefined

而对于数组来说,length是数组的一个内置属性,数组会根据索引长度来更改length的值。

为什么arr.length输出3而不是1

这是由于数组的特殊实现机制,对于普通的数组,如果它的索引是从0开始连续的,那么length的值就会等于数组中元素个数

而对于上面例子中arr,在给数组添加元素时,并没有按照连续的索引添加,所以导致数组的索引不连续,那么就导致索引长度大于元素个数(稀疏数组)。

数组和对象操作上的区别 var arr = [1,2,3,4,5,6] var stu = { name : "张三", sex : "男", age : 18, address : "四川成都", } for (var i in arr) { console.log(i, arr[i]); //输出 //0 1 //1 2 //2 3 //3 4 //4 5 //5 6 } for (var i in stu) { console.log(i, stu[i]); //输出 //name 张三 //sex 男 //age 18 //address 四川成都 }

由输出结果可以看出,for-in循环遍历时,i 的取值在数组和对象中是有区别的,i 在数组中代表索引,而在对象中代表了属性名。数组和对象操作元素的方法一致(名字[下标])。

对象可以充当数组中的元素 var scores = [ {id: 1, name:"张三", chinese: 99, math: 88, english: 37}, {id: 2, name:"李四", chinese: 79, math: 98, english: 47}, {id: 3, name:"王二", chinese: 99, math: 76, english: 27}, {id: 4, name:"麻子", chinese: 89, math: 98, english: 57}, {id: 5, name:"老宋", chinese: 99, math: 76, english: 77}, ]; var arr = { id: 1, name:"张三", chinese: 99, math: 88, english: 37, } console.log(arr.name);//输出张三 for(i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有